package com.tengju.bff.interfaces.covercharge.entity.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.tengju.bff.interfaces.covercharge.annotation.RoleDesensit;
import com.tengju.bff.interfaces.covercharge.constant.DesensitionFieldType;
import com.tengju.bff.interfaces.covercharge.entity.dto.WithdrawalReason;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Data
@ApiModel(value = "自认证提现申请详情")
public class AdminSelfCertificationDetail implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "主键",required=true)
    private Integer id;

    @ApiModelProperty(value = "申请时间",required=true)
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private LocalDateTime createdAt;

    @ApiModelProperty(value = "平台",required=true)
    private String platformCode;

    @ApiModelProperty(value = "代理id",required=true)
    private Integer idCode;

    @RoleDesensit(type = DesensitionFieldType.NAME)
    @ApiModelProperty(value = "代理姓名",required=true)
    private String name;

    @RoleDesensit(type = DesensitionFieldType.MOBILE)
    @ApiModelProperty(value = "手机号",required=true)
    private String mobile;

    @ApiModelProperty(value = "合作方式",required=true)
    private Integer type;

    @RoleDesensit(type = DesensitionFieldType.NAME)
    @ApiModelProperty(value = "户名",required=true)
    private String idcardName;

    @RoleDesensit(type = DesensitionFieldType.IDENTITY_NO)
    @ApiModelProperty(value = "身份证号",required=true)
    private String idcardNo;

    @ApiModelProperty(value = "开户行",required=true)
    private String bankName;

    @RoleDesensit(type = DesensitionFieldType.BANKCARD_NO)
    @ApiModelProperty(value = "银行卡号",required=true)
    private String bankNo;

    @ApiModelProperty(value = "企业名称",required=true)
    private String companyName;

    @RoleDesensit(type = DesensitionFieldType.DUTY_PARAGRAPH)
    @ApiModelProperty(value = "税号",required=true)
    private String companyNo;

    @ApiModelProperty(value = "公司地址",required=true)
    private String companyAddress;

    @ApiModelProperty(value = "营业执照",required=true)
    private String businessImg;

    @ApiModelProperty(value = "发票类型",required=true)
    private Integer invoice;

    @ApiModelProperty(value = "发票照片,多张，逗号分隔",required=true)
    private String invoiceImg;

    @ApiModelProperty(value = "申请理由",required=true)
    private List<WithdrawalReason> reasonNew;

    @ApiModelProperty(value = "申请金额",required=true)
    private BigDecimal money;

    @ApiModelProperty(value = "修改时间",required=true)
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private LocalDateTime updatedAt;

    @ApiModelProperty(value = "审批人",required=true)
    private String approvers;

    @ApiModelProperty(value = "审核状态",required=true)
    private Integer status;

}
